/*
**
** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
**     http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/

// This source file is automatically generated

package android.opengl;

/** OpenGL ES 3.0
 */
public class GLES30 extends GLES20 {
    public static final int GL_READ_BUFFER                             = 0x0C02;
    public static final int GL_UNPACK_ROW_LENGTH                       = 0x0CF2;
    public static final int GL_UNPACK_SKIP_ROWS                        = 0x0CF3;
    public static final int GL_UNPACK_SKIP_PIXELS                      = 0x0CF4;
    public static final int GL_PACK_ROW_LENGTH                         = 0x0D02;
    public static final int GL_PACK_SKIP_ROWS                          = 0x0D03;
    public static final int GL_PACK_SKIP_PIXELS                        = 0x0D04;
    public static final int GL_COLOR                                   = 0x1800;
    public static final int GL_DEPTH                                   = 0x1801;
    public static final int GL_STENCIL                                 = 0x1802;
    public static final int GL_RED                                     = 0x1903;
    public static final int GL_RGB8                                    = 0x8051;
    public static final int GL_RGBA8                                   = 0x8058;
    public static final int GL_RGB10_A2                                = 0x8059;
    public static final int GL_TEXTURE_BINDING_3D                      = 0x806A;
    public static final int GL_UNPACK_SKIP_IMAGES                      = 0x806D;
    public static final int GL_UNPACK_IMAGE_HEIGHT                     = 0x806E;
    public static final int GL_TEXTURE_3D                              = 0x806F;
    public static final int GL_TEXTURE_WRAP_R                          = 0x8072;
    public static final int GL_MAX_3D_TEXTURE_SIZE                     = 0x8073;
    public static final int GL_UNSIGNED_INT_2_10_10_10_REV             = 0x8368;
    public static final int GL_MAX_ELEMENTS_VERTICES                   = 0x80E8;
    public static final int GL_MAX_ELEMENTS_INDICES                    = 0x80E9;
    public static final int GL_TEXTURE_MIN_LOD                         = 0x813A;
    public static final int GL_TEXTURE_MAX_LOD                         = 0x813B;
    public static final int GL_TEXTURE_BASE_LEVEL                      = 0x813C;
    public static final int GL_TEXTURE_MAX_LEVEL                       = 0x813D;
    public static final int GL_MIN                                     = 0x8007;
    public static final int GL_MAX                                     = 0x8008;
    public static final int GL_DEPTH_COMPONENT24                       = 0x81A6;
    public static final int GL_MAX_TEXTURE_LOD_BIAS                    = 0x84FD;
    public static final int GL_TEXTURE_COMPARE_MODE                    = 0x884C;
    public static final int GL_TEXTURE_COMPARE_FUNC                    = 0x884D;
    public static final int GL_CURRENT_QUERY                           = 0x8865;
    public static final int GL_QUERY_RESULT                            = 0x8866;
    public static final int GL_QUERY_RESULT_AVAILABLE                  = 0x8867;
    public static final int GL_BUFFER_MAPPED                           = 0x88BC;
    public static final int GL_BUFFER_MAP_POINTER                      = 0x88BD;
    public static final int GL_STREAM_READ                             = 0x88E1;
    public static final int GL_STREAM_COPY                             = 0x88E2;
    public static final int GL_STATIC_READ                             = 0x88E5;
    public static final int GL_STATIC_COPY                             = 0x88E6;
    public static final int GL_DYNAMIC_READ                            = 0x88E9;
    public static final int GL_DYNAMIC_COPY                            = 0x88EA;
    public static final int GL_MAX_DRAW_BUFFERS                        = 0x8824;
    public static final int GL_DRAW_BUFFER0                            = 0x8825;
    public static final int GL_DRAW_BUFFER1                            = 0x8826;
    public static final int GL_DRAW_BUFFER2                            = 0x8827;
    public static final int GL_DRAW_BUFFER3                            = 0x8828;
    public static final int GL_DRAW_BUFFER4                            = 0x8829;
    public static final int GL_DRAW_BUFFER5                            = 0x882A;
    public static final int GL_DRAW_BUFFER6                            = 0x882B;
    public static final int GL_DRAW_BUFFER7                            = 0x882C;
    public static final int GL_DRAW_BUFFER8                            = 0x882D;
    public static final int GL_DRAW_BUFFER9                            = 0x882E;
    public static final int GL_DRAW_BUFFER10                           = 0x882F;
    public static final int GL_DRAW_BUFFER11                           = 0x8830;
    public static final int GL_DRAW_BUFFER12                           = 0x8831;
    public static final int GL_DRAW_BUFFER13                           = 0x8832;
    public static final int GL_DRAW_BUFFER14                           = 0x8833;
    public static final int GL_DRAW_BUFFER15                           = 0x8834;
    public static final int GL_MAX_FRAGMENT_UNIFORM_COMPONENTS         = 0x8B49;
    public static final int GL_MAX_VERTEX_UNIFORM_COMPONENTS           = 0x8B4A;
    public static final int GL_SAMPLER_3D                              = 0x8B5F;
    public static final int GL_SAMPLER_2D_SHADOW                       = 0x8B62;
    public static final int GL_FRAGMENT_SHADER_DERIVATIVE_HINT         = 0x8B8B;
    public static final int GL_PIXEL_PACK_BUFFER                       = 0x88EB;
    public static final int GL_PIXEL_UNPACK_BUFFER                     = 0x88EC;
    public static final int GL_PIXEL_PACK_BUFFER_BINDING               = 0x88ED;
    public static final int GL_PIXEL_UNPACK_BUFFER_BINDING             = 0x88EF;
    public static final int GL_FLOAT_MAT2x3                            = 0x8B65;
    public static final int GL_FLOAT_MAT2x4                            = 0x8B66;
    public static final int GL_FLOAT_MAT3x2                            = 0x8B67;
    public static final int GL_FLOAT_MAT3x4                            = 0x8B68;
    public static final int GL_FLOAT_MAT4x2                            = 0x8B69;
    public static final int GL_FLOAT_MAT4x3                            = 0x8B6A;
    public static final int GL_SRGB                                    = 0x8C40;
    public static final int GL_SRGB8                                   = 0x8C41;
    public static final int GL_SRGB8_ALPHA8                            = 0x8C43;
    public static final int GL_COMPARE_REF_TO_TEXTURE                  = 0x884E;
    public static final int GL_MAJOR_VERSION                           = 0x821B;
    public static final int GL_MINOR_VERSION                           = 0x821C;
    public static final int GL_NUM_EXTENSIONS                          = 0x821D;
    public static final int GL_RGBA32F                                 = 0x8814;
    public static final int GL_RGB32F                                  = 0x8815;
    public static final int GL_RGBA16F                                 = 0x881A;
    public static final int GL_RGB16F                                  = 0x881B;
    public static final int GL_VERTEX_ATTRIB_ARRAY_INTEGER             = 0x88FD;
    public static final int GL_MAX_ARRAY_TEXTURE_LAYERS                = 0x88FF;
    public static final int GL_MIN_PROGRAM_TEXEL_OFFSET                = 0x8904;
    public static final int GL_MAX_PROGRAM_TEXEL_OFFSET                = 0x8905;
    public static final int GL_MAX_VARYING_COMPONENTS                  = 0x8B4B;
    public static final int GL_TEXTURE_2D_ARRAY                        = 0x8C1A;
    public static final int GL_TEXTURE_BINDING_2D_ARRAY                = 0x8C1D;
    public static final int GL_R11F_G11F_B10F                          = 0x8C3A;
    public static final int GL_UNSIGNED_INT_10F_11F_11F_REV            = 0x8C3B;
    public static final int GL_RGB9_E5                                 = 0x8C3D;
    public static final int GL_UNSIGNED_INT_5_9_9_9_REV                = 0x8C3E;
    public static final int GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH   = 0x8C76;
    public static final int GL_TRANSFORM_FEEDBACK_BUFFER_MODE          = 0x8C7F;
    public static final int GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS   = 0x8C80;
    public static final int GL_TRANSFORM_FEEDBACK_VARYINGS             = 0x8C83;
    public static final int GL_TRANSFORM_FEEDBACK_BUFFER_START         = 0x8C84;
    public static final int GL_TRANSFORM_FEEDBACK_BUFFER_SIZE          = 0x8C85;
    public static final int GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN   = 0x8C88;
    public static final int GL_RASTERIZER_DISCARD                      = 0x8C89;
    public static final int GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS    = 0x8C8A;
    public static final int GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B;
    public static final int GL_INTERLEAVED_ATTRIBS                     = 0x8C8C;
    public static final int GL_SEPARATE_ATTRIBS                        = 0x8C8D;
    public static final int GL_TRANSFORM_FEEDBACK_BUFFER               = 0x8C8E;
    public static final int GL_TRANSFORM_FEEDBACK_BUFFER_BINDING       = 0x8C8F;
    public static final int GL_RGBA32UI                                = 0x8D70;
    public static final int GL_RGB32UI                                 = 0x8D71;
    public static final int GL_RGBA16UI                                = 0x8D76;
    public static final int GL_RGB16UI                                 = 0x8D77;
    public static final int GL_RGBA8UI                                 = 0x8D7C;
    public static final int GL_RGB8UI                                  = 0x8D7D;
    public static final int GL_RGBA32I                                 = 0x8D82;
    public static final int GL_RGB32I                                  = 0x8D83;
    public static final int GL_RGBA16I                                 = 0x8D88;
    public static final int GL_RGB16I                                  = 0x8D89;
    public static final int GL_RGBA8I                                  = 0x8D8E;
    public static final int GL_RGB8I                                   = 0x8D8F;
    public static final int GL_RED_INTEGER                             = 0x8D94;
    public static final int GL_RGB_INTEGER                             = 0x8D98;
    public static final int GL_RGBA_INTEGER                            = 0x8D99;
    public static final int GL_SAMPLER_2D_ARRAY                        = 0x8DC1;
    public static final int GL_SAMPLER_2D_ARRAY_SHADOW                 = 0x8DC4;
    public static final int GL_SAMPLER_CUBE_SHADOW                     = 0x8DC5;
    public static final int GL_UNSIGNED_INT_VEC2                       = 0x8DC6;
    public static final int GL_UNSIGNED_INT_VEC3                       = 0x8DC7;
    public static final int GL_UNSIGNED_INT_VEC4                       = 0x8DC8;
    public static final int GL_INT_SAMPLER_2D                          = 0x8DCA;
    public static final int GL_INT_SAMPLER_3D                          = 0x8DCB;
    public static final int GL_INT_SAMPLER_CUBE                        = 0x8DCC;
    public static final int GL_INT_SAMPLER_2D_ARRAY                    = 0x8DCF;
    public static final int GL_UNSIGNED_INT_SAMPLER_2D                 = 0x8DD2;
    public static final int GL_UNSIGNED_INT_SAMPLER_3D                 = 0x8DD3;
    public static final int GL_UNSIGNED_INT_SAMPLER_CUBE               = 0x8DD4;
    public static final int GL_UNSIGNED_INT_SAMPLER_2D_ARRAY           = 0x8DD7;
    public static final int GL_BUFFER_ACCESS_FLAGS                     = 0x911F;
    public static final int GL_BUFFER_MAP_LENGTH                       = 0x9120;
    public static final int GL_BUFFER_MAP_OFFSET                       = 0x9121;
    public static final int GL_DEPTH_COMPONENT32F                      = 0x8CAC;
    public static final int GL_DEPTH32F_STENCIL8                       = 0x8CAD;
    public static final int GL_FLOAT_32_UNSIGNED_INT_24_8_REV          = 0x8DAD;
    public static final int GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING   = 0x8210;
    public static final int GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE   = 0x8211;
    public static final int GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE         = 0x8212;
    public static final int GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE       = 0x8213;
    public static final int GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE        = 0x8214;
    public static final int GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE       = 0x8215;
    public static final int GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE       = 0x8216;
    public static final int GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE     = 0x8217;
    public static final int GL_FRAMEBUFFER_DEFAULT                     = 0x8218;
    public static final int GL_FRAMEBUFFER_UNDEFINED                   = 0x8219;
    public static final int GL_DEPTH_STENCIL_ATTACHMENT                = 0x821A;
    public static final int GL_DEPTH_STENCIL                           = 0x84F9;
    public static final int GL_UNSIGNED_INT_24_8                       = 0x84FA;
    public static final int GL_DEPTH24_STENCIL8                        = 0x88F0;
    public static final int GL_UNSIGNED_NORMALIZED                     = 0x8C17;
    public static final int GL_DRAW_FRAMEBUFFER_BINDING                = GL_FRAMEBUFFER_BINDING;
    public static final int GL_READ_FRAMEBUFFER                        = 0x8CA8;
    public static final int GL_DRAW_FRAMEBUFFER                        = 0x8CA9;
    public static final int GL_READ_FRAMEBUFFER_BINDING                = 0x8CAA;
    public static final int GL_RENDERBUFFER_SAMPLES                    = 0x8CAB;
    public static final int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER    = 0x8CD4;
    public static final int GL_MAX_COLOR_ATTACHMENTS                   = 0x8CDF;
    public static final int GL_COLOR_ATTACHMENT1                       = 0x8CE1;
    public static final int GL_COLOR_ATTACHMENT2                       = 0x8CE2;
    public static final int GL_COLOR_ATTACHMENT3                       = 0x8CE3;
    public static final int GL_COLOR_ATTACHMENT4                       = 0x8CE4;
    public static final int GL_COLOR_ATTACHMENT5                       = 0x8CE5;
    public static final int GL_COLOR_ATTACHMENT6                       = 0x8CE6;
    public static final int GL_COLOR_ATTACHMENT7                       = 0x8CE7;
    public static final int GL_COLOR_ATTACHMENT8                       = 0x8CE8;
    public static final int GL_COLOR_ATTACHMENT9                       = 0x8CE9;
    public static final int GL_COLOR_ATTACHMENT10                      = 0x8CEA;
    public static final int GL_COLOR_ATTACHMENT11                      = 0x8CEB;
    public static final int GL_COLOR_ATTACHMENT12                      = 0x8CEC;
    public static final int GL_COLOR_ATTACHMENT13                      = 0x8CED;
    public static final int GL_COLOR_ATTACHMENT14                      = 0x8CEE;
    public static final int GL_COLOR_ATTACHMENT15                      = 0x8CEF;
    public static final int GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE      = 0x8D56;
    public static final int GL_MAX_SAMPLES                             = 0x8D57;
    public static final int GL_HALF_FLOAT                              = 0x140B;
    public static final int GL_MAP_READ_BIT                            = 0x0001;
    public static final int GL_MAP_WRITE_BIT                           = 0x0002;
    public static final int GL_MAP_INVALIDATE_RANGE_BIT                = 0x0004;
    public static final int GL_MAP_INVALIDATE_BUFFER_BIT               = 0x0008;
    public static final int GL_MAP_FLUSH_EXPLICIT_BIT                  = 0x0010;
    public static final int GL_MAP_UNSYNCHRONIZED_BIT                  = 0x0020;
    public static final int GL_RG                                      = 0x8227;
    public static final int GL_RG_INTEGER                              = 0x8228;
    public static final int GL_R8                                      = 0x8229;
    public static final int GL_RG8                                     = 0x822B;
    public static final int GL_R16F                                    = 0x822D;
    public static final int GL_R32F                                    = 0x822E;
    public static final int GL_RG16F                                   = 0x822F;
    public static final int GL_RG32F                                   = 0x8230;
    public static final int GL_R8I                                     = 0x8231;
    public static final int GL_R8UI                                    = 0x8232;
    public static final int GL_R16I                                    = 0x8233;
    public static final int GL_R16UI                                   = 0x8234;
    public static final int GL_R32I                                    = 0x8235;
    public static final int GL_R32UI                                   = 0x8236;
    public static final int GL_RG8I                                    = 0x8237;
    public static final int GL_RG8UI                                   = 0x8238;
    public static final int GL_RG16I                                   = 0x8239;
    public static final int GL_RG16UI                                  = 0x823A;
    public static final int GL_RG32I                                   = 0x823B;
    public static final int GL_RG32UI                                  = 0x823C;
    public static final int GL_VERTEX_ARRAY_BINDING                    = 0x85B5;
    public static final int GL_R8_SNORM                                = 0x8F94;
    public static final int GL_RG8_SNORM                               = 0x8F95;
    public static final int GL_RGB8_SNORM                              = 0x8F96;
    public static final int GL_RGBA8_SNORM                             = 0x8F97;
    public static final int GL_SIGNED_NORMALIZED                       = 0x8F9C;
    public static final int GL_PRIMITIVE_RESTART_FIXED_INDEX           = 0x8D69;
    public static final int GL_COPY_READ_BUFFER                        = 0x8F36;
    public static final int GL_COPY_WRITE_BUFFER                       = 0x8F37;
    public static final int GL_COPY_READ_BUFFER_BINDING                = GL_COPY_READ_BUFFER;
    public static final int GL_COPY_WRITE_BUFFER_BINDING               = GL_COPY_WRITE_BUFFER;
    public static final int GL_UNIFORM_BUFFER                          = 0x8A11;
    public static final int GL_UNIFORM_BUFFER_BINDING                  = 0x8A28;
    public static final int GL_UNIFORM_BUFFER_START                    = 0x8A29;
    public static final int GL_UNIFORM_BUFFER_SIZE                     = 0x8A2A;
    public static final int GL_MAX_VERTEX_UNIFORM_BLOCKS               = 0x8A2B;
    public static final int GL_MAX_FRAGMENT_UNIFORM_BLOCKS             = 0x8A2D;
    public static final int GL_MAX_COMBINED_UNIFORM_BLOCKS             = 0x8A2E;
    public static final int GL_MAX_UNIFORM_BUFFER_BINDINGS             = 0x8A2F;
    public static final int GL_MAX_UNIFORM_BLOCK_SIZE                  = 0x8A30;
    public static final int GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS  = 0x8A31;
    public static final int GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS     = 0x8A33;
    public static final int GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT         = 0x8A34;
    public static final int GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH    = 0x8A35;
    public static final int GL_ACTIVE_UNIFORM_BLOCKS                   = 0x8A36;
    public static final int GL_UNIFORM_TYPE                            = 0x8A37;
    public static final int GL_UNIFORM_SIZE                            = 0x8A38;
    public static final int GL_UNIFORM_NAME_LENGTH                     = 0x8A39;
    public static final int GL_UNIFORM_BLOCK_INDEX                     = 0x8A3A;
    public static final int GL_UNIFORM_OFFSET                          = 0x8A3B;
    public static final int GL_UNIFORM_ARRAY_STRIDE                    = 0x8A3C;
    public static final int GL_UNIFORM_MATRIX_STRIDE                   = 0x8A3D;
    public static final int GL_UNIFORM_IS_ROW_MAJOR                    = 0x8A3E;
    public static final int GL_UNIFORM_BLOCK_BINDING                   = 0x8A3F;
    public static final int GL_UNIFORM_BLOCK_DATA_SIZE                 = 0x8A40;
    public static final int GL_UNIFORM_BLOCK_NAME_LENGTH               = 0x8A41;
    public static final int GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS           = 0x8A42;
    public static final int GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES    = 0x8A43;
    public static final int GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER    = 0x8A44;
    public static final int GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER  = 0x8A46;
    // GL_INVALID_INDEX is defined as 0xFFFFFFFFu in C.
    public static final int GL_INVALID_INDEX                           = -1;
    public static final int GL_MAX_VERTEX_OUTPUT_COMPONENTS            = 0x9122;
    public static final int GL_MAX_FRAGMENT_INPUT_COMPONENTS           = 0x9125;
    public static final int GL_MAX_SERVER_WAIT_TIMEOUT                 = 0x9111;
    public static final int GL_OBJECT_TYPE                             = 0x9112;
    public static final int GL_SYNC_CONDITION                          = 0x9113;
    public static final int GL_SYNC_STATUS                             = 0x9114;
    public static final int GL_SYNC_FLAGS                              = 0x9115;
    public static final int GL_SYNC_FENCE                              = 0x9116;
    public static final int GL_SYNC_GPU_COMMANDS_COMPLETE              = 0x9117;
    public static final int GL_UNSIGNALED                              = 0x9118;
    public static final int GL_SIGNALED                                = 0x9119;
    public static final int GL_ALREADY_SIGNALED                        = 0x911A;
    public static final int GL_TIMEOUT_EXPIRED                         = 0x911B;
    public static final int GL_CONDITION_SATISFIED                     = 0x911C;
    public static final int GL_WAIT_FAILED                             = 0x911D;
    public static final int GL_SYNC_FLUSH_COMMANDS_BIT                 = 0x00000001;
    // GL_TIMEOUT_IGNORED is defined as 0xFFFFFFFFFFFFFFFFull in C.
    public static final long GL_TIMEOUT_IGNORED                         = -1;
    public static final int GL_VERTEX_ATTRIB_ARRAY_DIVISOR             = 0x88FE;
    public static final int GL_ANY_SAMPLES_PASSED                      = 0x8C2F;
    public static final int GL_ANY_SAMPLES_PASSED_CONSERVATIVE         = 0x8D6A;
    public static final int GL_SAMPLER_BINDING                         = 0x8919;
    public static final int GL_RGB10_A2UI                              = 0x906F;
    public static final int GL_TEXTURE_SWIZZLE_R                       = 0x8E42;
    public static final int GL_TEXTURE_SWIZZLE_G                       = 0x8E43;
    public static final int GL_TEXTURE_SWIZZLE_B                       = 0x8E44;
    public static final int GL_TEXTURE_SWIZZLE_A                       = 0x8E45;
    public static final int GL_GREEN                                   = 0x1904;
    public static final int GL_BLUE                                    = 0x1905;
    public static final int GL_INT_2_10_10_10_REV                      = 0x8D9F;
    public static final int GL_TRANSFORM_FEEDBACK                      = 0x8E22;
    public static final int GL_TRANSFORM_FEEDBACK_PAUSED               = 0x8E23;
    public static final int GL_TRANSFORM_FEEDBACK_ACTIVE               = 0x8E24;
    public static final int GL_TRANSFORM_FEEDBACK_BINDING              = 0x8E25;
    public static final int GL_PROGRAM_BINARY_RETRIEVABLE_HINT         = 0x8257;
    public static final int GL_PROGRAM_BINARY_LENGTH                   = 0x8741;
    public static final int GL_NUM_PROGRAM_BINARY_FORMATS              = 0x87FE;
    public static final int GL_PROGRAM_BINARY_FORMATS                  = 0x87FF;
    public static final int GL_COMPRESSED_R11_EAC                      = 0x9270;
    public static final int GL_COMPRESSED_SIGNED_R11_EAC               = 0x9271;
    public static final int GL_COMPRESSED_RG11_EAC                     = 0x9272;
    public static final int GL_COMPRESSED_SIGNED_RG11_EAC              = 0x9273;
    public static final int GL_COMPRESSED_RGB8_ETC2                    = 0x9274;
    public static final int GL_COMPRESSED_SRGB8_ETC2                   = 0x9275;
    public static final int GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2     = 0x9276;
    public static final int GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2    = 0x9277;
    public static final int GL_COMPRESSED_RGBA8_ETC2_EAC               = 0x9278;
    public static final int GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC        = 0x9279;
    public static final int GL_TEXTURE_IMMUTABLE_FORMAT                = 0x912F;
    public static final int GL_MAX_ELEMENT_INDEX                       = 0x8D6B;
    public static final int GL_NUM_SAMPLE_COUNTS                       = 0x9380;
    public static final int GL_TEXTURE_IMMUTABLE_LEVELS                = 0x82DF;

    native private static void _nativeClassInit();
    static {
        _nativeClassInit();
    }

    // C function void glReadBuffer ( GLenum mode )

    public static native void glReadBuffer(
        int mode
    );

    // C function void glDrawRangeElements ( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices )

    public static native void glDrawRangeElements(
        int mode,
        int start,
        int end,
        int count,
        int type,
        java.nio.Buffer indices
    );

    // C function void glDrawRangeElements ( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLsizei offset )

    public static native void glDrawRangeElements(
        int mode,
        int start,
        int end,
        int count,
        int type,
        int offset
    );

    // C function void glTexImage3D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels )

    public static native void glTexImage3D(
        int target,
        int level,
        int internalformat,
        int width,
        int height,
        int depth,
        int border,
        int format,
        int type,
        java.nio.Buffer pixels
    );

    // C function void glTexImage3D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLsizei offset )

    public static native void glTexImage3D(
        int target,
        int level,
        int internalformat,
        int width,
        int height,
        int depth,
        int border,
        int format,
        int type,
        int offset
    );

    // C function void glTexSubImage3D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels )

    public static native void glTexSubImage3D(
        int target,
        int level,
        int xoffset,
        int yoffset,
        int zoffset,
        int width,
        int height,
        int depth,
        int format,
        int type,
        java.nio.Buffer pixels
    );

    // C function void glTexSubImage3D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei offset )

    public static native void glTexSubImage3D(
        int target,
        int level,
        int xoffset,
        int yoffset,
        int zoffset,
        int width,
        int height,
        int depth,
        int format,
        int type,
        int offset
    );

    // C function void glCopyTexSubImage3D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height )

    public static native void glCopyTexSubImage3D(
        int target,
        int level,
        int xoffset,
        int yoffset,
        int zoffset,
        int x,
        int y,
        int width,
        int height
    );

    // C function void glCompressedTexImage3D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data )

    public static native void glCompressedTexImage3D(
        int target,
        int level,
        int internalformat,
        int width,
        int height,
        int depth,
        int border,
        int imageSize,
        java.nio.Buffer data
    );

    // C function void glCompressedTexImage3D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLsizei offset )

    public static native void glCompressedTexImage3D(
        int target,
        int level,
        int internalformat,
        int width,
        int height,
        int depth,
        int border,
        int imageSize,
        int offset
    );

    // C function void glCompressedTexSubImage3D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data )

    public static native void glCompressedTexSubImage3D(
        int target,
        int level,
        int xoffset,
        int yoffset,
        int zoffset,
        int width,
        int height,
        int depth,
        int format,
        int imageSize,
        java.nio.Buffer data
    );

    // C function void glCompressedTexSubImage3D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLsizei offset )

    public static native void glCompressedTexSubImage3D(
        int target,
        int level,
        int xoffset,
        int yoffset,
        int zoffset,
        int width,
        int height,
        int depth,
        int format,
        int imageSize,
        int offset
    );

    // C function void glGenQueries ( GLsizei n, GLuint *ids )

    public static native void glGenQueries(
        int n,
        int[] ids,
        int offset
    );

    // C function void glGenQueries ( GLsizei n, GLuint *ids )

    public static native void glGenQueries(
        int n,
        java.nio.IntBuffer ids
    );

    // C function void glDeleteQueries ( GLsizei n, const GLuint *ids )

    public static native void glDeleteQueries(
        int n,
        int[] ids,
        int offset
    );

    // C function void glDeleteQueries ( GLsizei n, const GLuint *ids )

    public static native void glDeleteQueries(
        int n,
        java.nio.IntBuffer ids
    );

    // C function GLboolean glIsQuery ( GLuint id )

    public static native boolean glIsQuery(
        int id
    );

    // C function void glBeginQuery ( GLenum target, GLuint id )

    public static native void glBeginQuery(
        int target,
        int id
    );

    // C function void glEndQuery ( GLenum target )

    public static native void glEndQuery(
        int target
    );

    // C function void glGetQueryiv ( GLenum target, GLenum pname, GLint *params )

    public static native void glGetQueryiv(
        int target,
        int pname,
        int[] params,
        int offset
    );

    // C function void glGetQueryiv ( GLenum target, GLenum pname, GLint *params )

    public static native void glGetQueryiv(
        int target,
        int pname,
        java.nio.IntBuffer params
    );

    // C function void glGetQueryObjectuiv ( GLuint id, GLenum pname, GLuint *params )

    public static native void glGetQueryObjectuiv(
        int id,
        int pname,
        int[] params,
        int offset
    );

    // C function void glGetQueryObjectuiv ( GLuint id, GLenum pname, GLuint *params )

    public static native void glGetQueryObjectuiv(
        int id,
        int pname,
        java.nio.IntBuffer params
    );

    // C function GLboolean glUnmapBuffer ( GLenum target )

    public static native boolean glUnmapBuffer(
        int target
    );

    // C function void glGetBufferPointerv ( GLenum target, GLenum pname, GLvoid** params )

    /**
     * The {@link java.nio.Buffer} instance returned by this method is guaranteed
     * to be an instance of {@link java.nio.ByteBuffer}.
     */
    public static native java.nio.Buffer glGetBufferPointerv(
        int target,
        int pname
    );

    // C function void glDrawBuffers ( GLsizei n, const GLenum *bufs )

    public static native void glDrawBuffers(
        int n,
        int[] bufs,
        int offset
    );

    // C function void glDrawBuffers ( GLsizei n, const GLenum *bufs )

    public static native void glDrawBuffers(
        int n,
        java.nio.IntBuffer bufs
    );

    // C function void glUniformMatrix2x3fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )

    public static native void glUniformMatrix2x3fv(
        int location,
        int count,
        boolean transpose,
        float[] value,
        int offset
    );

    // C function void glUniformMatrix2x3fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )

    public static native void glUniformMatrix2x3fv(
        int location,
        int count,
        boolean transpose,
        java.nio.FloatBuffer value
    );

    // C function void glUniformMatrix3x2fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )

    public static native void glUniformMatrix3x2fv(
        int location,
        int count,
        boolean transpose,
        float[] value,
        int offset
    );

    // C function void glUniformMatrix3x2fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )

    public static native void glUniformMatrix3x2fv(
        int location,
        int count,
        boolean transpose,
        java.nio.FloatBuffer value
    );

    // C function void glUniformMatrix2x4fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )

    public static native void glUniformMatrix2x4fv(
        int location,
        int count,
        boolean transpose,
        float[] value,
        int offset
    );

    // C function void glUniformMatrix2x4fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )

    public static native void glUniformMatrix2x4fv(
        int location,
        int count,
        boolean transpose,
        java.nio.FloatBuffer value
    );

    // C function void glUniformMatrix4x2fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )

    public static native void glUniformMatrix4x2fv(
        int location,
        int count,
        boolean transpose,
        float[] value,
        int offset
    );

    // C function void glUniformMatrix4x2fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )

    public static native void glUniformMatrix4x2fv(
        int location,
        int count,
        boolean transpose,
        java.nio.FloatBuffer value
    );

    // C function void glUniformMatrix3x4fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )

    public static native void glUniformMatrix3x4fv(
        int location,
        int count,
        boolean transpose,
        float[] value,
        int offset
    );

    // C function void glUniformMatrix3x4fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )

    public static native void glUniformMatrix3x4fv(
        int location,
        int count,
        boolean transpose,
        java.nio.FloatBuffer value
    );

    // C function void glUniformMatrix4x3fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )

    public static native void glUniformMatrix4x3fv(
        int location,
        int count,
        boolean transpose,
        float[] value,
        int offset
    );

    // C function void glUniformMatrix4x3fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )

    public static native void glUniformMatrix4x3fv(
        int location,
        int count,
        boolean transpose,
        java.nio.FloatBuffer value
    );

    // C function void glBlitFramebuffer ( GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter )

    public static native void glBlitFramebuffer(
        int srcX0,
        int srcY0,
        int srcX1,
        int srcY1,
        int dstX0,
        int dstY0,
        int dstX1,
        int dstY1,
        int mask,
        int filter
    );

    // C function void glRenderbufferStorageMultisample ( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height )

    public static native void glRenderbufferStorageMultisample(
        int target,
        int samples,
        int internalformat,
        int width,
        int height
    );

    // C function void glFramebufferTextureLayer ( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer )

    public static native void glFramebufferTextureLayer(
        int target,
        int attachment,
        int texture,
        int level,
        int layer
    );

    // C function GLvoid * glMapBufferRange ( GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access )

    /**
     * The {@link java.nio.Buffer} instance returned by this method is guaranteed
     * to be an instance of {@link java.nio.ByteBuffer}.
     */
    public static native java.nio.Buffer glMapBufferRange(
        int target,
        int offset,
        int length,
        int access
    );

    // C function void glFlushMappedBufferRange ( GLenum target, GLintptr offset, GLsizeiptr length )

    public static native void glFlushMappedBufferRange(
        int target,
        int offset,
        int length
    );

    // C function void glBindVertexArray ( GLuint array )

    public static native void glBindVertexArray(
        int array
    );

    // C function void glDeleteVertexArrays ( GLsizei n, const GLuint *arrays )

    public static native void glDeleteVertexArrays(
        int n,
        int[] arrays,
        int offset
    );

    // C function void glDeleteVertexArrays ( GLsizei n, const GLuint *arrays )

    public static native void glDeleteVertexArrays(
        int n,
        java.nio.IntBuffer arrays
    );

    // C function void glGenVertexArrays ( GLsizei n, GLuint *arrays )

    public static native void glGenVertexArrays(
        int n,
        int[] arrays,
        int offset
    );

    // C function void glGenVertexArrays ( GLsizei n, GLuint *arrays )

    public static native void glGenVertexArrays(
        int n,
        java.nio.IntBuffer arrays
    );

    // C function GLboolean glIsVertexArray ( GLuint array )

    public static native boolean glIsVertexArray(
        int array
    );

    // C function void glGetIntegeri_v ( GLenum target, GLuint index, GLint *data )

    public static native void glGetIntegeri_v(
        int target,
        int index,
        int[] data,
        int offset
    );

    // C function void glGetIntegeri_v ( GLenum target, GLuint index, GLint *data )

    public static native void glGetIntegeri_v(
        int target,
        int index,
        java.nio.IntBuffer data
    );

    // C function void glBeginTransformFeedback ( GLenum primitiveMode )

    public static native void glBeginTransformFeedback(
        int primitiveMode
    );

    // C function void glEndTransformFeedback ( void )

    public static native void glEndTransformFeedback(
    );

    // C function void glBindBufferRange ( GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size )

    public static native void glBindBufferRange(
        int target,
        int index,
        int buffer,
        int offset,
        int size
    );

    // C function void glBindBufferBase ( GLenum target, GLuint index, GLuint buffer )

    public static native void glBindBufferBase(
        int target,
        int index,
        int buffer
    );

    // C function void glTransformFeedbackVaryings ( GLuint program, GLsizei count, const GLchar *varyings, GLenum bufferMode )

    public static native void glTransformFeedbackVaryings(
        int program,
        String[] varyings,
        int bufferMode
    );

    // C function void glGetTransformFeedbackVarying ( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name )

    public static native void glGetTransformFeedbackVarying(
        int program,
        int index,
        int bufsize,
        int[] length,
        int lengthOffset,
        int[] size,
        int sizeOffset,
        int[] type,
        int typeOffset,
        byte[] name,
        int nameOffset
    );

    // C function void glGetTransformFeedbackVarying ( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name )
    /**
     * @deprecated
     * Use the version that takes a ByteBuffer as the last argument, or the versions that return a String.
     * */
    public static native void glGetTransformFeedbackVarying(
        int program,
        int index,
        int bufsize,
        java.nio.IntBuffer length,
        java.nio.IntBuffer size,
        java.nio.IntBuffer type,
        byte name
    );

    // C function void glGetTransformFeedbackVarying ( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name )

    public static native void glGetTransformFeedbackVarying(
        int program,
        int index,
        int bufsize,
        java.nio.IntBuffer length,
        java.nio.IntBuffer size,
        java.nio.IntBuffer type,
        java.nio.ByteBuffer name
    );

    // C function void glGetTransformFeedbackVarying ( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name )

    public static native String glGetTransformFeedbackVarying(
        int program,
        int index,
        int[] size,
        int sizeOffset,
        int[] type,
        int typeOffset
    );

    // C function void glGetTransformFeedbackVarying ( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name )

    public static native String glGetTransformFeedbackVarying(
        int program,
        int index,
        java.nio.IntBuffer size,
        java.nio.IntBuffer type
    );

    // C function void glVertexAttribIPointer ( GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer )

    private static native void glVertexAttribIPointerBounds(
        int index,
        int size,
        int type,
        int stride,
        java.nio.Buffer pointer,
        int remaining
    );

    public static void glVertexAttribIPointer(
        int index,
        int size,
        int type,
        int stride,
        java.nio.Buffer pointer
    ) {
        glVertexAttribIPointerBounds(
            index,
            size,
            type,
            stride,
            pointer,
            pointer.remaining()
        );
    }

    // C function void glVertexAttribIPointer ( GLuint index, GLint size, GLenum type, GLsizei stride, GLsizei offset )

    public static native void glVertexAttribIPointer(
        int index,
        int size,
        int type,
        int stride,
        int offset
    );

    // C function void glGetVertexAttribIiv ( GLuint index, GLenum pname, GLint *params )

    public static native void glGetVertexAttribIiv(
        int index,
        int pname,
        int[] params,
        int offset
    );

    // C function void glGetVertexAttribIiv ( GLuint index, GLenum pname, GLint *params )

    public static native void glGetVertexAttribIiv(
        int index,
        int pname,
        java.nio.IntBuffer params
    );

    // C function void glGetVertexAttribIuiv ( GLuint index, GLenum pname, GLuint *params )

    public static native void glGetVertexAttribIuiv(
        int index,
        int pname,
        int[] params,
        int offset
    );

    // C function void glGetVertexAttribIuiv ( GLuint index, GLenum pname, GLuint *params )

    public static native void glGetVertexAttribIuiv(
        int index,
        int pname,
        java.nio.IntBuffer params
    );

    // C function void glVertexAttribI4i ( GLuint index, GLint x, GLint y, GLint z, GLint w )

    public static native void glVertexAttribI4i(
        int index,
        int x,
        int y,
        int z,
        int w
    );

    // C function void glVertexAttribI4ui ( GLuint index, GLuint x, GLuint y, GLuint z, GLuint w )

    public static native void glVertexAttribI4ui(
        int index,
        int x,
        int y,
        int z,
        int w
    );

    // C function void glVertexAttribI4iv ( GLuint index, const GLint *v )

    public static native void glVertexAttribI4iv(
        int index,
        int[] v,
        int offset
    );

    // C function void glVertexAttribI4iv ( GLuint index, const GLint *v )

    public static native void glVertexAttribI4iv(
        int index,
        java.nio.IntBuffer v
    );

    // C function void glVertexAttribI4uiv ( GLuint index, const GLuint *v )

    public static native void glVertexAttribI4uiv(
        int index,
        int[] v,
        int offset
    );

    // C function void glVertexAttribI4uiv ( GLuint index, const GLuint *v )

    public static native void glVertexAttribI4uiv(
        int index,
        java.nio.IntBuffer v
    );

    // C function void glGetUniformuiv ( GLuint program, GLint location, GLuint *params )

    public static native void glGetUniformuiv(
        int program,
        int location,
        int[] params,
        int offset
    );

    // C function void glGetUniformuiv ( GLuint program, GLint location, GLuint *params )

    public static native void glGetUniformuiv(
        int program,
        int location,
        java.nio.IntBuffer params
    );

    // C function GLint glGetFragDataLocation ( GLuint program, const GLchar *name )

    public static native int glGetFragDataLocation(
        int program,
        String name
    );

    // C function void glUniform1ui ( GLint location, GLuint v0 )

    public static native void glUniform1ui(
        int location,
        int v0
    );

    // C function void glUniform2ui ( GLint location, GLuint v0, GLuint v1 )

    public static native void glUniform2ui(
        int location,
        int v0,
        int v1
    );

    // C function void glUniform3ui ( GLint location, GLuint v0, GLuint v1, GLuint v2 )

    public static native void glUniform3ui(
        int location,
        int v0,
        int v1,
        int v2
    );

    // C function void glUniform4ui ( GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 )

    public static native void glUniform4ui(
        int location,
        int v0,
        int v1,
        int v2,
        int v3
    );

    // C function void glUniform1uiv ( GLint location, GLsizei count, const GLuint *value )

    public static native void glUniform1uiv(
        int location,
        int count,
        int[] value,
        int offset
    );

    // C function void glUniform1uiv ( GLint location, GLsizei count, const GLuint *value )

    public static native void glUniform1uiv(
        int location,
        int count,
        java.nio.IntBuffer value
    );

    // C function void glUniform2uiv ( GLint location, GLsizei count, const GLuint *value )

    public static native void glUniform2uiv(
        int location,
        int count,
        int[] value,
        int offset
    );

    // C function void glUniform2uiv ( GLint location, GLsizei count, const GLuint *value )

    public static native void glUniform2uiv(
        int location,
        int count,
        java.nio.IntBuffer value
    );

    // C function void glUniform3uiv ( GLint location, GLsizei count, const GLuint *value )

    public static native void glUniform3uiv(
        int location,
        int count,
        int[] value,
        int offset
    );

    // C function void glUniform3uiv ( GLint location, GLsizei count, const GLuint *value )

    public static native void glUniform3uiv(
        int location,
        int count,
        java.nio.IntBuffer value
    );

    // C function void glUniform4uiv ( GLint location, GLsizei count, const GLuint *value )

    public static native void glUniform4uiv(
        int location,
        int count,
        int[] value,
        int offset
    );

    // C function void glUniform4uiv ( GLint location, GLsizei count, const GLuint *value )

    public static native void glUniform4uiv(
        int location,
        int count,
        java.nio.IntBuffer value
    );

    // C function void glClearBufferiv ( GLenum buffer, GLint drawbuffer, const GLint *value )

    public static native void glClearBufferiv(
        int buffer,
        int drawbuffer,
        int[] value,
        int offset
    );

    // C function void glClearBufferiv ( GLenum buffer, GLint drawbuffer, const GLint *value )

    public static native void glClearBufferiv(
        int buffer,
        int drawbuffer,
        java.nio.IntBuffer value
    );

    // C function void glClearBufferuiv ( GLenum buffer, GLint drawbuffer, const GLuint *value )

    public static native void glClearBufferuiv(
        int buffer,
        int drawbuffer,
        int[] value,
        int offset
    );

    // C function void glClearBufferuiv ( GLenum buffer, GLint drawbuffer, const GLuint *value )

    public static native void glClearBufferuiv(
        int buffer,
        int drawbuffer,
        java.nio.IntBuffer value
    );

    // C function void glClearBufferfv ( GLenum buffer, GLint drawbuffer, const GLfloat *value )

    public static native void glClearBufferfv(
        int buffer,
        int drawbuffer,
        float[] value,
        int offset
    );

    // C function void glClearBufferfv ( GLenum buffer, GLint drawbuffer, const GLfloat *value )

    public static native void glClearBufferfv(
        int buffer,
        int drawbuffer,
        java.nio.FloatBuffer value
    );

    // C function void glClearBufferfi ( GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil )

    public static native void glClearBufferfi(
        int buffer,
        int drawbuffer,
        float depth,
        int stencil
    );

    // C function const GLubyte * glGetStringi ( GLenum name, GLuint index )

    public static native String glGetStringi(
        int name,
        int index
    );

    // C function void glCopyBufferSubData ( GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size )

    public static native void glCopyBufferSubData(
        int readTarget,
        int writeTarget,
        int readOffset,
        int writeOffset,
        int size
    );

    // C function void glGetUniformIndices ( GLuint program, GLsizei uniformCount, const GLchar *const *uniformNames, GLuint *uniformIndices )

    public static native void glGetUniformIndices(
        int program,
        String[] uniformNames,
        int[] uniformIndices,
        int uniformIndicesOffset
    );

    // C function void glGetUniformIndices ( GLuint program, GLsizei uniformCount, const GLchar *const *uniformNames, GLuint *uniformIndices )

    public static native void glGetUniformIndices(
        int program,
        String[] uniformNames,
        java.nio.IntBuffer uniformIndices
    );

    // C function void glGetActiveUniformsiv ( GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params )

    public static native void glGetActiveUniformsiv(
        int program,
        int uniformCount,
        int[] uniformIndices,
        int uniformIndicesOffset,
        int pname,
        int[] params,
        int paramsOffset
    );

    // C function void glGetActiveUniformsiv ( GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params )

    public static native void glGetActiveUniformsiv(
        int program,
        int uniformCount,
        java.nio.IntBuffer uniformIndices,
        int pname,
        java.nio.IntBuffer params
    );

    // C function GLuint glGetUniformBlockIndex ( GLuint program, const GLchar *uniformBlockName )

    public static native int glGetUniformBlockIndex(
        int program,
        String uniformBlockName
    );

    // C function void glGetActiveUniformBlockiv ( GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params )

    public static native void glGetActiveUniformBlockiv(
        int program,
        int uniformBlockIndex,
        int pname,
        int[] params,
        int offset
    );

    // C function void glGetActiveUniformBlockiv ( GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params )

    public static native void glGetActiveUniformBlockiv(
        int program,
        int uniformBlockIndex,
        int pname,
        java.nio.IntBuffer params
    );

    // C function void glGetActiveUniformBlockName ( GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName )

    public static native void glGetActiveUniformBlockName(
        int program,
        int uniformBlockIndex,
        int bufSize,
        int[] length,
        int lengthOffset,
        byte[] uniformBlockName,
        int uniformBlockNameOffset
    );

    // C function void glGetActiveUniformBlockName ( GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName )

    public static native void glGetActiveUniformBlockName(
        int program,
        int uniformBlockIndex,
        java.nio.Buffer length,
        java.nio.Buffer uniformBlockName
    );

    // C function void glGetActiveUniformBlockName ( GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName )

    public static native String glGetActiveUniformBlockName(
        int program,
        int uniformBlockIndex
    );

    // C function void glUniformBlockBinding ( GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding )

    public static native void glUniformBlockBinding(
        int program,
        int uniformBlockIndex,
        int uniformBlockBinding
    );

    // C function void glDrawArraysInstanced ( GLenum mode, GLint first, GLsizei count, GLsizei instanceCount )

    public static native void glDrawArraysInstanced(
        int mode,
        int first,
        int count,
        int instanceCount
    );

    // C function void glDrawElementsInstanced ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instanceCount )

    public static native void glDrawElementsInstanced(
        int mode,
        int count,
        int type,
        java.nio.Buffer indices,
        int instanceCount
    );

    // C function void glDrawElementsInstanced ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instanceCount )

    public static native void glDrawElementsInstanced(
        int mode,
        int count,
        int type,
        int indicesOffset,
        int instanceCount
    );

    // C function GLsync glFenceSync ( GLenum condition, GLbitfield flags )

    public static native long glFenceSync(
        int condition,
        int flags
    );

    // C function GLboolean glIsSync ( GLsync sync )

    public static native boolean glIsSync(
        long sync
    );

    // C function void glDeleteSync ( GLsync sync )

    public static native void glDeleteSync(
        long sync
    );

    // C function GLenum glClientWaitSync ( GLsync sync, GLbitfield flags, GLuint64 timeout )

    public static native int glClientWaitSync(
        long sync,
        int flags,
        long timeout
    );

    // C function void glWaitSync ( GLsync sync, GLbitfield flags, GLuint64 timeout )

    public static native void glWaitSync(
        long sync,
        int flags,
        long timeout
    );

    // C function void glGetInteger64v ( GLenum pname, GLint64 *params )

    public static native void glGetInteger64v(
        int pname,
        long[] params,
        int offset
    );

    // C function void glGetInteger64v ( GLenum pname, GLint64 *params )

    public static native void glGetInteger64v(
        int pname,
        java.nio.LongBuffer params
    );

    // C function void glGetSynciv ( GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values )

    public static native void glGetSynciv(
        long sync,
        int pname,
        int bufSize,
        int[] length,
        int lengthOffset,
        int[] values,
        int valuesOffset
    );

    // C function void glGetSynciv ( GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values )

    public static native void glGetSynciv(
        long sync,
        int pname,
        int bufSize,
        java.nio.IntBuffer length,
        java.nio.IntBuffer values
    );

    // C function void glGetInteger64i_v ( GLenum target, GLuint index, GLint64 *data )

    public static native void glGetInteger64i_v(
        int target,
        int index,
        long[] data,
        int offset
    );

    // C function void glGetInteger64i_v ( GLenum target, GLuint index, GLint64 *data )

    public static native void glGetInteger64i_v(
        int target,
        int index,
        java.nio.LongBuffer data
    );

    // C function void glGetBufferParameteri64v ( GLenum target, GLenum pname, GLint64 *params )

    public static native void glGetBufferParameteri64v(
        int target,
        int pname,
        long[] params,
        int offset
    );

    // C function void glGetBufferParameteri64v ( GLenum target, GLenum pname, GLint64 *params )

    public static native void glGetBufferParameteri64v(
        int target,
        int pname,
        java.nio.LongBuffer params
    );

    // C function void glGenSamplers ( GLsizei count, GLuint *samplers )

    public static native void glGenSamplers(
        int count,
        int[] samplers,
        int offset
    );

    // C function void glGenSamplers ( GLsizei count, GLuint *samplers )

    public static native void glGenSamplers(
        int count,
        java.nio.IntBuffer samplers
    );

    // C function void glDeleteSamplers ( GLsizei count, const GLuint *samplers )

    public static native void glDeleteSamplers(
        int count,
        int[] samplers,
        int offset
    );

    // C function void glDeleteSamplers ( GLsizei count, const GLuint *samplers )

    public static native void glDeleteSamplers(
        int count,
        java.nio.IntBuffer samplers
    );

    // C function GLboolean glIsSampler ( GLuint sampler )

    public static native boolean glIsSampler(
        int sampler
    );

    // C function void glBindSampler ( GLuint unit, GLuint sampler )

    public static native void glBindSampler(
        int unit,
        int sampler
    );

    // C function void glSamplerParameteri ( GLuint sampler, GLenum pname, GLint param )

    public static native void glSamplerParameteri(
        int sampler,
        int pname,
        int param
    );

    // C function void glSamplerParameteriv ( GLuint sampler, GLenum pname, const GLint *param )

    public static native void glSamplerParameteriv(
        int sampler,
        int pname,
        int[] param,
        int offset
    );

    // C function void glSamplerParameteriv ( GLuint sampler, GLenum pname, const GLint *param )

    public static native void glSamplerParameteriv(
        int sampler,
        int pname,
        java.nio.IntBuffer param
    );

    // C function void glSamplerParameterf ( GLuint sampler, GLenum pname, GLfloat param )

    public static native void glSamplerParameterf(
        int sampler,
        int pname,
        float param
    );

    // C function void glSamplerParameterfv ( GLuint sampler, GLenum pname, const GLfloat *param )

    public static native void glSamplerParameterfv(
        int sampler,
        int pname,
        float[] param,
        int offset
    );

    // C function void glSamplerParameterfv ( GLuint sampler, GLenum pname, const GLfloat *param )

    public static native void glSamplerParameterfv(
        int sampler,
        int pname,
        java.nio.FloatBuffer param
    );

    // C function void glGetSamplerParameteriv ( GLuint sampler, GLenum pname, GLint *params )

    public static native void glGetSamplerParameteriv(
        int sampler,
        int pname,
        int[] params,
        int offset
    );

    // C function void glGetSamplerParameteriv ( GLuint sampler, GLenum pname, GLint *params )

    public static native void glGetSamplerParameteriv(
        int sampler,
        int pname,
        java.nio.IntBuffer params
    );

    // C function void glGetSamplerParameterfv ( GLuint sampler, GLenum pname, GLfloat *params )

    public static native void glGetSamplerParameterfv(
        int sampler,
        int pname,
        float[] params,
        int offset
    );

    // C function void glGetSamplerParameterfv ( GLuint sampler, GLenum pname, GLfloat *params )

    public static native void glGetSamplerParameterfv(
        int sampler,
        int pname,
        java.nio.FloatBuffer params
    );

    // C function void glVertexAttribDivisor ( GLuint index, GLuint divisor )

    public static native void glVertexAttribDivisor(
        int index,
        int divisor
    );

    // C function void glBindTransformFeedback ( GLenum target, GLuint id )

    public static native void glBindTransformFeedback(
        int target,
        int id
    );

    // C function void glDeleteTransformFeedbacks ( GLsizei n, const GLuint *ids )

    public static native void glDeleteTransformFeedbacks(
        int n,
        int[] ids,
        int offset
    );

    // C function void glDeleteTransformFeedbacks ( GLsizei n, const GLuint *ids )

    public static native void glDeleteTransformFeedbacks(
        int n,
        java.nio.IntBuffer ids
    );

    // C function void glGenTransformFeedbacks ( GLsizei n, GLuint *ids )

    public static native void glGenTransformFeedbacks(
        int n,
        int[] ids,
        int offset
    );

    // C function void glGenTransformFeedbacks ( GLsizei n, GLuint *ids )

    public static native void glGenTransformFeedbacks(
        int n,
        java.nio.IntBuffer ids
    );

    // C function GLboolean glIsTransformFeedback ( GLuint id )

    public static native boolean glIsTransformFeedback(
        int id
    );

    // C function void glPauseTransformFeedback ( void )

    public static native void glPauseTransformFeedback(
    );

    // C function void glResumeTransformFeedback ( void )

    public static native void glResumeTransformFeedback(
    );

    // C function void glGetProgramBinary ( GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary )

    public static native void glGetProgramBinary(
        int program,
        int bufSize,
        int[] length,
        int lengthOffset,
        int[] binaryFormat,
        int binaryFormatOffset,
        java.nio.Buffer binary
    );

    // C function void glGetProgramBinary ( GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary )

    public static native void glGetProgramBinary(
        int program,
        int bufSize,
        java.nio.IntBuffer length,
        java.nio.IntBuffer binaryFormat,
        java.nio.Buffer binary
    );

    // C function void glProgramBinary ( GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length )

    public static native void glProgramBinary(
        int program,
        int binaryFormat,
        java.nio.Buffer binary,
        int length
    );

    // C function void glProgramParameteri ( GLuint program, GLenum pname, GLint value )

    public static native void glProgramParameteri(
        int program,
        int pname,
        int value
    );

    // C function void glInvalidateFramebuffer ( GLenum target, GLsizei numAttachments, const GLenum *attachments )

    public static native void glInvalidateFramebuffer(
        int target,
        int numAttachments,
        int[] attachments,
        int offset
    );

    // C function void glInvalidateFramebuffer ( GLenum target, GLsizei numAttachments, const GLenum *attachments )

    public static native void glInvalidateFramebuffer(
        int target,
        int numAttachments,
        java.nio.IntBuffer attachments
    );

    // C function void glInvalidateSubFramebuffer ( GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height )

    public static native void glInvalidateSubFramebuffer(
        int target,
        int numAttachments,
        int[] attachments,
        int offset,
        int x,
        int y,
        int width,
        int height
    );

    // C function void glInvalidateSubFramebuffer ( GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height )

    public static native void glInvalidateSubFramebuffer(
        int target,
        int numAttachments,
        java.nio.IntBuffer attachments,
        int x,
        int y,
        int width,
        int height
    );

    // C function void glTexStorage2D ( GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height )

    public static native void glTexStorage2D(
        int target,
        int levels,
        int internalformat,
        int width,
        int height
    );

    // C function void glTexStorage3D ( GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth )

    public static native void glTexStorage3D(
        int target,
        int levels,
        int internalformat,
        int width,
        int height,
        int depth
    );

    // C function void glGetInternalformativ ( GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params )

    public static native void glGetInternalformativ(
        int target,
        int internalformat,
        int pname,
        int bufSize,
        int[] params,
        int offset
    );

    // C function void glGetInternalformativ ( GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params )

    public static native void glGetInternalformativ(
        int target,
        int internalformat,
        int pname,
        int bufSize,
        java.nio.IntBuffer params
    );

    // C function void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint offset )

    public static native void glReadPixels(
        int x,
        int y,
        int width,
        int height,
        int format,
        int type,
        int offset
    );

}
